﻿<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:Controls="clr-namespace:Monti.Controls">

   <SolidColorBrush x:Key="SearchTextBox_Background"
                    Color="White" />
   <SolidColorBrush x:Key="SearchTextBox_Foreground"
                    Color="Black" />
   <LinearGradientBrush x:Key="SearchTextBox_Border"
                        StartPoint="0,0"
                        EndPoint="0,1">
      <GradientStop Color="#FFABADB3"
                    Offset="0.05" />
      <GradientStop Color="#FFE2E3EA"
                    Offset="0.07" />
      <GradientStop Color="#FFE3E9EF"
                    Offset="1" />
   </LinearGradientBrush>
   <LinearGradientBrush x:Key="SearchTextBox_BorderMouseOver"
                        StartPoint="0,0"
                        EndPoint="0,1">
      <GradientStop Color="#FF5C97C1"
                    Offset="0.05" />
      <GradientStop Color="#FFB9D7EB"
                    Offset="0.07" />
      <GradientStop Color="#FFC7E2F1"
                    Offset="1" />
   </LinearGradientBrush>
   <SolidColorBrush x:Key="SearchTextBox_SearchIconBorder"
                    Color="White" />
   <SolidColorBrush x:Key="SearchTextBox_SearchIconBackground"
                    Color="White" />
   <SolidColorBrush x:Key="SearchTextBox_SearchIconBorder_MouseOver"
                    Color="#E5C365" />
   <LinearGradientBrush x:Key="SearchTextBox_SearchIconBackground_MouseOver"
                        StartPoint="0,0"
                        EndPoint="0,1">
      <GradientStop Color="#FFE8A6"
                    Offset=".4" />
      <GradientStop Color="#FFEDBA"
                    Offset=".6" />
      <GradientStop Color="#FFFAEC" />
   </LinearGradientBrush>
   <LinearGradientBrush x:Key="SearchTextBox_SearchIconBorder_MouseDown"
                        StartPoint="0,0"
                        EndPoint="0,1">
      <GradientStop Color="#FFFFFFFF"
                    Offset="0" />
      <GradientStop Color="#FFE5F4FC"
                    Offset="1" />
   </LinearGradientBrush>
   <LinearGradientBrush x:Key="SearchTextBox_SearchIconBackground_MouseDown"
                        StartPoint="0,0"
                        EndPoint="0,1">
      <GradientStop Color="#FFE7F5FD"
                    Offset="0" />
      <GradientStop Color="#FFD2EDFC"
                    Offset="0.5" />
      <GradientStop Color="#FFB6E3FD"
                    Offset="0.51" />
      <GradientStop Color="#FF9DD5F3"
                    Offset="1" />
   </LinearGradientBrush>
   <SolidColorBrush x:Key="SearchTextBox_PlaceHolderTextColor"
                    Color="Gray" />

   <Style x:Key="{x:Type Controls:SearchTextBox}"
          TargetType="{x:Type Controls:SearchTextBox}">
      <Setter Property="Background"
              Value="{StaticResource SearchTextBox_Background}" />
      <Setter Property="BorderBrush"
              Value="{StaticResource SearchTextBox_Border}" />
      <Setter Property="Foreground"
              Value="{StaticResource SearchTextBox_Foreground}" />
      <Setter Property="BorderThickness"
              Value="1" />
      <Setter Property="SnapsToDevicePixels"
              Value="True" />
      <Setter Property="PlaceHolderText"
              Value="Search" />
      <Setter Property="FocusVisualStyle"
              Value="{x:Null}" />
      <Setter Property="PlaceHolderTextColor"
              Value="{StaticResource SearchTextBox_PlaceHolderTextColor}" />
      <Setter Property="Template">
         <Setter.Value>
            <ControlTemplate TargetType="{x:Type Controls:SearchTextBox}">
               <Grid>
                  <Grid.ColumnDefinitions>
                     <ColumnDefinition Width="15" />
                     <ColumnDefinition Width="*" />
                  </Grid.ColumnDefinitions>
                  
                  <Image x:Name="ClearIcon"
                         Stretch="None"
                         Width="15"
                         Height="15"
                         Grid.Column="0"
                         HorizontalAlignment="Center"
                         VerticalAlignment="Center"
                         Visibility="Collapsed"
                         Source="pack://application:,,,/Monti;component/Images/clear.png" />

                  <Border x:Name="Border"
                          Grid.Column="1"
                          Background="{TemplateBinding Background}"
                          BorderBrush="{TemplateBinding BorderBrush}"
                          BorderThickness="{TemplateBinding BorderThickness}">
                     <Grid x:Name="LayoutGrid">
                        <Grid.ColumnDefinitions>
                           <ColumnDefinition Width="*" />
                           <ColumnDefinition Width="{Binding RelativeSource={RelativeSource TemplatedParent},
                                                  Path=ActualHeight}" />
                        </Grid.ColumnDefinitions>
                        <ScrollViewer Margin="2"
                                      x:Name="PART_ContentHost"
                                      Grid.Column="0" />
                        <TextBlock x:Name="PlaceHolderText"
                                   Margin="2"
                                   Grid.Column="0"
                                   Foreground="{Binding RelativeSource={RelativeSource TemplatedParent},
                                          Path=PlaceHolderTextColor}"
                                   Text="{Binding RelativeSource={RelativeSource TemplatedParent},
                                       Path=PlaceHolderText}"
                                   Cursor="IBeam"
                                   Padding="2,0,0,0"
                                   FontStyle="Italic" />
                        <Border x:Name="PART_SearchIconBorder"
                                Grid.Column="1"
                                CornerRadius="3"
                                BorderThickness="1"
                                VerticalAlignment="Stretch"
                                HorizontalAlignment="Stretch"
                                BorderBrush="{StaticResource SearchTextBox_SearchIconBorder}"
                                Background="{StaticResource SearchTextBox_SearchIconBackground}">
                           <Image x:Name="SearchIcon"
                                  Stretch="None"
                                  Width="15"
                                  Height="15"
                                  HorizontalAlignment="Center"
                                  VerticalAlignment="Center"
                                  Source="pack://application:,,,/Monti;component/Images/search.png" />
                        </Border>
                     </Grid>
                  </Border>
               </Grid>
               <ControlTemplate.Triggers>
                  <Trigger Property="IsMouseOver"
                           Value="True">
                     <Setter Property="BorderBrush"
                             Value="{StaticResource SearchTextBox_BorderMouseOver}" />
                  </Trigger>
                  <Trigger Property="IsKeyboardFocusWithin"
                           Value="True">
                     <Setter Property="BorderBrush"
                             Value="{StaticResource SearchTextBox_BorderMouseOver}" />
                  </Trigger>
                  <Trigger Property="HasText"
                           Value="True">
                     <Setter Property="Visibility"
                             TargetName="PlaceHolderText"
                             Value="Hidden" />
                     <Setter Property="Visibility"
                             TargetName="ClearIcon"
                             Value="Visible" />
                  </Trigger>
                  <MultiTrigger>
                     <MultiTrigger.Conditions>
                        <Condition Property="IsMouseOver"
                                   SourceName="PART_SearchIconBorder"
                                   Value="True" />
                        <Condition Property="HasText"
                                   Value="True" />
                     </MultiTrigger.Conditions>
                     <Setter Property="BorderBrush"
                             TargetName="PART_SearchIconBorder"
                             Value="{StaticResource SearchTextBox_SearchIconBorder_MouseOver}" />
                     <Setter Property="Background"
                             TargetName="PART_SearchIconBorder"
                             Value="{StaticResource SearchTextBox_SearchIconBackground_MouseOver}" />
                  </MultiTrigger>
                  <MultiTrigger>
                     <MultiTrigger.Conditions>
                        <Condition Property="IsMouseOver"
                                   SourceName="PART_SearchIconBorder"
                                   Value="True" />
                        <Condition Property="IsMouseLeftButtonDown"
                                   Value="True" />
                        <Condition Property="HasText"
                                   Value="True" />
                     </MultiTrigger.Conditions>
                     <Setter Property="Padding"
                             TargetName="PART_SearchIconBorder"
                             Value="2,2,0,0" />
                     <Setter Property="BorderBrush"
                             TargetName="PART_SearchIconBorder"
                             Value="{StaticResource SearchTextBox_SearchIconBorder_MouseOver}" />
                     <Setter Property="Background"
                             TargetName="PART_SearchIconBorder"
                             Value="{StaticResource SearchTextBox_SearchIconBackground_MouseOver}" />
                  </MultiTrigger>

                  <MultiTrigger>
                     <MultiTrigger.Conditions>
                        <Condition Property="IsMouseOver"
                                   SourceName="ClearIcon"
                                   Value="True" />
                        <Condition Property="HasText"
                                   Value="True" />
                     </MultiTrigger.Conditions>
                     <Setter Property="Source"
                             TargetName="ClearIcon"
                             Value="pack://application:,,,/Monti;component/Images/clear_over.png" />
                  </MultiTrigger>
               </ControlTemplate.Triggers>
            </ControlTemplate>
         </Setter.Value>
      </Setter>
   </Style>

</ResourceDictionary>